package algo3.pruebas.barcosTest;
import algo3.modelo.Direccion;
import algo3.modelo.Posicion;
import algo3.modelo.armas.Danio;
import algo3.modelo.armas.DisparoConvencional;
import algo3.modelo.armas.MinaSubmarinaDobleConRetardo;
import algo3.modelo.barcos.Barco;
import algo3.modelo.barcos.Lancha;

public class LanchaTest extends BarcoDaniableTestConHerencia{
	
	public Barco crearBarco(Posicion unaPosicion, Direccion direccion, Direccion orientacion){
		Barco unBarco = new Lancha(unaPosicion, direccion, orientacion);
		return unBarco;
	}
	
	public void testEsDeTamanioDos(){
		Posicion unaPosicion = new Posicion (1,2);
		Barco unaLancha = new Lancha(unaPosicion,Direccion.DERECHA,Direccion.DERECHA);
		assertEquals(2, unaLancha.getTamanio());
		assertEquals(2, unaLancha.posicionesOcupadas().size());
	}

    
    public void testHundirBarcoDeDosPartesDeUnDisparoYUnaMina(){
    	Posicion pos = new Posicion(4, 3);
        Barco barco = crearBarco(pos, Direccion.DERECHA, Direccion.DERECHA);
        barco.recibirDanio(new Danio(pos, DisparoConvencional.class));
        barco.recibirDanio(new Danio(new Posicion(5, 3), MinaSubmarinaDobleConRetardo.class));
        assertEquals(Barco.Estado.HUNDIDO, barco.getEstado());
    }
}
